package edu.hhu.wifispark.util;

import java.util.Calendar;
import java.util.Date;

public class DateUtil {
//	public static long tesTime = 1503075600000l;
	/**
	 * 获取本小时0分0秒的时间戳
	 * @return
	 */
	public static long getHour(long time){
		Calendar cal = Calendar.getInstance();
		cal.setTimeInMillis(time);
//		cal.setTimeInMillis(tesTime);
		cal.set(Calendar.SECOND, 0); 
		cal.set(Calendar.MINUTE, 0); 
		cal.set(Calendar.MILLISECOND, 0); 
		return cal.getTimeInMillis(); 
	}
	
	/**
	 * 获得当天0点时间 
	 * @return
	 */
	public static long getTimesmorning(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(Calendar.HOUR_OF_DAY, 0); 
	cal.set(Calendar.SECOND, 0); 
	cal.set(Calendar.MINUTE, 0); 
	cal.set(Calendar.MILLISECOND, 0); 
	return cal.getTimeInMillis(); 
	} 
	
	/**
	 * 获得当天24点时间 
	 * @return
	 */
	public static long getTimesnight(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(Calendar.HOUR_OF_DAY, 24); 
	cal.set(Calendar.SECOND, 0); 
	cal.set(Calendar.MINUTE, 0); 
	cal.set(Calendar.MILLISECOND, 0); 
	return cal.getTimeInMillis(); 
	} 

	/**
	 * 获得本周一0点时间 
	 * @return
	 */
	public static long getTimesWeekmorning(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
	cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
	return cal.getTimeInMillis(); 
	} 

	/**
	 * 获得本周日24点时间 
	 * @return
	 */
	public static long getTimesWeeknight(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
	cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
	return (int) ((cal.getTime().getTime()+ (7 * 24 * 60 * 60 * 1000))/1000); 
	} 
	
	/**
	 * 获得本月第一天0点时间
	 * @return
	 */
	public static long getTimesMonthmorning(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
	cal.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH)); 
	return cal.getTimeInMillis(); 
	} 
	
	/**
	 * 获得本月最后一天24点时间 
	 * @return
	 */
	public static long getTimesMonthnight(){ 
	Calendar cal = Calendar.getInstance(); 
	cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
	cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH)); 
	cal.set(Calendar.HOUR_OF_DAY, 24); 
	return cal.getTimeInMillis(); 
	}
	
	public static void main(String args[]){
		Date date = new Date();
		date = new Date(getHour(date.getTime()));
		System.out.println(date);
	}
}
